e11965dca07beb57fce042323711556df5044062,authz/authz-impl/impl/src/java/org/sakaiproject/authz/impl/DbAuthzGroupService.java,DbStorage,remove,#AuthzGroup#,1007

Before Change


			// and then the realm and release the lock, all in one transaction
			Connection connection = null;
			boolean wasCommit = true;
			try
			{
				connection = m_sql.borrowConnection();
				wasCommit = connection.getAutoCommit();
				connection.setAutoCommit(false);

				// delete the role functions, role grants, provider entries
				Object fields[] = new Object[1];
				fields[0] = caseId(edit.getId());

				if ("mysql".equals(sqlService().getVendor()))
				{
					String statement = "delete SAKAI_REALM_RL_FN from SAKAI_REALM_RL_FN inner join SAKAI_REALM on SAKAI_REALM_RL_FN.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
 					m_sql.dbWrite(connection, statement, fields);
 
					statement = "delete SAKAI_REALM_RL_GR from SAKAI_REALM_RL_GR inner join SAKAI_REALM on SAKAI_REALM_RL_GR.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
 					m_sql.dbWrite(connection, statement, fields);
 
					statement = "delete SAKAI_REALM_PROVIDER from SAKAI_REALM_PROVIDER inner join SAKAI_REALM on SAKAI_REALM_PROVIDER.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
 					m_sql.dbWrite(connection, statement, fields);
 
					statement = "delete SAKAI_REALM_ROLE_DESC from SAKAI_REALM_ROLE_DESC inner join SAKAI_REALM on SAKAI_REALM_ROLE_DESC.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
 					m_sql.dbWrite(connection, statement, fields);
				}
				else
				// oracle and hsql
				{
					String statement = "delete from SAKAI_REALM_RL_FN where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
					m_sql.dbWrite(connection, statement, fields);

					statement = "delete from SAKAI_REALM_RL_GR where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
					m_sql.dbWrite(connection, statement, fields);

					statement = "delete from SAKAI_REALM_PROVIDER where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
					m_sql.dbWrite(connection, statement, fields);

					statement = "delete from SAKAI_REALM_ROLE_DESC where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
					m_sql.dbWrite(connection, statement, fields);

After Change



			if ("mysql".equals(sqlService().getVendor()))
			{
				statement = "DELETE SAKAI_REALM_ROLE_DESC FROM SAKAI_REALM_ROLE_DESC INNER JOIN SAKAI_REALM ON SAKAI_REALM_ROLE_DESC.REALM_KEY = SAKAI_REALM.REALM_KEY AND SAKAI_REALM.REALM_ID = ?";
			}
			else
			{
				statement = "DELETE FROM SAKAI_REALM_ROLE_DESC WHERE REALM_KEY IN (SELECT REALM_KEY FROM SAKAI_REALM WHERE REALM_ID = ?)";
			}
			m_sql.dbWrite(statement, fields);

			// delete the realm and properties
			super.removeResource(null, edit, ((BaseAuthzGroup) edit).getKey());